Systems and methods for construction abstraction

ABSTRACT

A frame design and a sheathing design for a design model may be produced by the systems and methods described herein. A processor in communication with a database may receive a design model comprising building specifications. The processor may define a panel in the design model and generate the frame design and the sheathing design for the panel.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/089,817, filed Nov. 26, 2013 which is based on and derives thebenefit of the filing date of U.S. Provisional Patent Application No.61/732,212, filed Nov. 30, 2012, the entire contents of the foregoingare herein incorporated by reference in their entireties.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network according to an embodiment of the invention.

FIG. 2A is a computer numerical control (CNC) system according to anembodiment of the invention.

FIG. 2B is a push joint according to an embodiment of the invention.

FIG. 2C is a manufacturing process according to an embodiment of theinvention.

FIG. 3 is a method for generating manufacturing instructions accordingto an embodiment of the invention.

FIG. 4 is a design model according to an embodiment of the invention.

FIG. 5 is a panel algorithm according to an embodiment of the invention.

FIG. 6 is a deconstruction algorithm according to an embodiment of theinvention.

FIG. 7 is a frame algorithm according to an embodiment of the invention.

FIG. 8A is a rib generating algorithm according to an embodiment of theinvention.

FIG. 8B is a design model according to an embodiment of the invention.

FIG. 8C is a design model according to an embodiment of the invention.

FIG. 9 is a sheathing algorithm according to an embodiment of theinvention.

FIG. 10 is a subdivide algorithm according to an embodiment of theinvention.

FIG. 11 is a packing algorithm according to an embodiment of theinvention.

FIG. 12 is an inventory and accounting algorithm according to anembodiment of the invention.

FIG. 13 is a method for generating surface printing instructionsaccording to an embodiment of the invention.

FIG. 14A is a design model according to an embodiment of the invention.

FIG. 14B is a print machine according to an embodiment of the invention.

FIG. 15 is a surface algorithm according to an embodiment of theinvention.

FIG. 16 is a developable surface sheathing algorithm according to anembodiment of the invention.

FIG. 17A is an undevelopable surface sheathing algorithm according to anembodiment of the invention.

FIG. 17B is an undevelopable surface according to an embodiment of theinvention.

FIG. 17C is an undevelopable surface triangle tessellation according toan embodiment of the invention.

FIG. 18 is a finish template fitting algorithm according to anembodiment of the invention.

FIG. 19 is a method for placing building systems according to anembodiment of the invention.

FIG. 20A is a construction model according to an embodiment of theinvention.

FIG. 20B is a construction model according to an embodiment of theinvention.

FIG. 20C is a set of joint types according to an embodiment of theinvention.

FIG. 21 is a building system sort algorithm according to an embodimentof the invention.

FIG. 22 is a best fit algorithm according to an embodiment of theinvention.

FIG. 23 is a joint sorting algorithm according to an embodiment of theinvention.

FIG. 24 is a method for generating joints according to an embodiment ofthe invention.

FIG. 25A is a design model according to an embodiment of the invention.

FIG. 25B is a design model according to an embodiment of the invention.

FIG. 25C is a design model according to an embodiment of the invention.

FIG. 25D is a design model according to an embodiment of the invention.

FIG. 25E is a design model according to an embodiment of the invention.

FIG. 25F is a design model according to an embodiment of the invention.

FIG. 26 is a system according to an embodiment of the invention.

DETAILED DESCRIPTION OF SEVERAL EMBODIMENTS

Systems and methods described herein may parse information inherent tothree dimensional (3D) digital design models to enable structure designand/or control of automated machinery in the fabrication of physicalstructures. This may involve the preparation of data, the abstraction ofthe data through a series of algorithmic manipulations, and theresultant generation of display data and/or control of machinery in thefabrication of structural components.

The systems and methods described herein may comprise one or morecomputers. A computer may be any programmable machine capable ofperforming arithmetic and/or logical operations. In some embodiments,computers may comprise processors, memories, data storage devices,and/or other commonly known or novel components. These components may beconnected physically or through network or wireless links. Computers mayalso comprise software which may direct the operations of theaforementioned components. Computers may be referred to with terms thatare commonly used by those of ordinary skill in the relevant arts, suchas servers, PCs, mobile devices, and other terms. Computers mayfacilitate communications between users, may provide databases, mayperform analysis and/or transformation of data, and/or perform otherfunctions. It will be understood by those of ordinary skill that thoseterms used herein are interchangeable, and any computer capable ofperforming the described functions may be used. For example, though theterm “server” may appear in the following specification, the disclosedembodiments are not limited to servers.

Computers may be linked to one another via a network or networks. Anetwork may be any plurality of completely or partially interconnectedcomputers wherein some or all of the computers are able to communicatewith one another. It will be understood by those of ordinary skill thatconnections between computers may be wired in some cases (i.e. viaEthernet, coaxial, optical, or other wired connection) or may bewireless (i.e. via Wi-Fi, WiMax, or other wireless connection).Connections between computers may use any protocols, includingconnection oriented protocols such as TCP or connectionless protocolssuch as UDP. Any connection through which at least two computers mayexchange data can be the basis of a network.

FIG. 1 depicts a network 100 according to an embodiment of theinvention. The network 100 may include one or more abstraction enginecomputers 110 which may perform abstraction processes such as thosedescribed below. The abstraction engine computer 110 may be incommunication with one or more databases 120 and may be accessible to auser via one or more user interfaces 130. The abstraction enginecomputer 110 may also be in communication with one or more networks 150such as the internet or a private network. The abstraction enginecomputer 110 may be able to communicate with other computers 140 via thenetwork 150. Also, databases 120 and/or user interfaces 130 may be incommunication with the abstraction engine computer 110 via the network150 or directly.

The abstraction engine computer 110 may be used to generate data thatmay be useful in the construction of building elements. A constructiondesign model may serve as a file input. This model may be the startingpoint for a process where construction documents, building system (HVAC,plumbing, electrical) documents, and material cost and inventoryrequirements are produced in preparation for a physical build.Information in the digital model may be abstracted to derive informationand controls for fabricating the physical structure. An automated orsemi-automated process may parse 3D information inherent to digitalmodels to derive CAD instructions which may be used by robotic machineryto manufacture the digitally represented structure. This process may beapplicable in fabricating enclosures, bridges, boats, jets, and similarcomplex systems that may require structural rigidity and a complex form.This process may be compatible with a diverse selection of compositematerials and CNC, CAD, robotic, and rapid manufacturing machinery.

FIG. 2A depicts a computer numerical control (CNC) system 200 accordingto an embodiment of the invention. As those of ordinary skill in the artwill appreciate, a CNC system may include a computer and a tool elementwhich can be used to perform automated construction. This CNC system 200is presented as an example of a system which may use data generated bythe abstraction engine computer 110 to perform construction. A set ofCNC cutting beds 205 may be arranged to accommodate constructionmaterials such as panels of various sizes. The set of cutting beds 205may include one or more single modular CNC beds 210, each of which mayinclude one or more cylinders 215 turned by motors to move materialsatop the bed 205. Sides of the cutting beds 205 may include perforatedpanels 220 which may be fastened to one another with push joints 225,either permanently or temporarily. This example CNC system 200 may beused with the systems and methods described below, although other CNCsystems may be used as well.

FIG. 2B is a push joint 225 according to an embodiment of the invention.The push joint 225 may be made of a flexible material, such as acomposite material, so that when the push joint 225 is pushed through ahole, such as a hole in a panel 220, the push joint 225 may deform(i.e., bend to its center) in order to pass through the hole. Oncethrough, lips of the push joint 225 may extend and prevent the pushjoint 225 from deforming and coming out of the hole.

FIG. 2C is a manufacturing process 250 according to an embodiment of theinvention. This manufacturing process 250 may use the CNC system 200 ofFIG. 2A or some other CNC system, and is an example of a manufacturingprocess that may be carried out using the data produced by the systemsand methods described herein. Components may be milled using CNC 251,and those milled components may be assembled into panels 252. Workersmay assemble the panels as shown in FIG. 2C, or they may be assembledautomatically. A first sheathing layer may be vacuum formed or otherwisefitted to a panel 253, and then the sheathing may be removed and thepanel may be rotated 254. With some forms of vacuum forming thesheathing may not need to be removed prior to rotating. A secondsheathing layer may be vacuum formed or otherwise fitted to the panel255, and the second sheathing may be bonded to the panel 256. Forexample, the sheathing may be bonded to the panel 256 with aball-jointed sonic welder as shown. The panel may be rotated 257, andinsulation may be added to the panel 258, for example by spraying. Thefirst sheathing may be bonded to the panel 259. The panel constructionmay thereby be completed 260, and the panel may be ready for use inconstruction. As those of ordinary skill in the art will appreciate,this is one example of a manufacturing process 250 which could beenabled using the systems and methods described herein, but othermethods or steps may be used as well.

FIG. 3 is a method for generating manufacturing instructions 300according to an embodiment of the invention. The abstraction enginecomputer 110 may use this method 300 to transform a design model intodata that may be used by the CNC system 200 and in the manufacturingprocess 250 described above, for example. The abstraction enginecomputer 110 may receive a design model 310, which may be a CAD/CAM fileor other data. The design model may include, for example, a 3D mockup ofa structure with each wall, floor, and roof represented as a closedsolid. Toilets, sinks, lighting fixtures, and other uniquely placedbuilding systems may be defined and labeled in the model. The designmodel may be input by a user via a user interface 130, it may beretrieved from a database 120, or it may be received by the abstractionengine computer 110 in some other way. The abstraction engine computer110 may apply a panel algorithm 320 to the design model, which mayproduce one or more panels. The abstraction engine computer 110 mayapply a deconstruct algorithm 330 to each panel, which may split thepanel into various components. The abstraction engine computer 110 maythen apply a frame algorithm 340, a sheathing algorithm 350, and/or arib algorithm 360 to the deconstructed panel data. When each panel hasbeen analyzed thusly, the abstraction engine computer 110 may apply asubdivide/packing algorithm 370/375 and/or an inventory and accountingalgorithm 380 to the data. The result may be a set of data which can beused to facilitate the construction of the panels. The variousalgorithms used by this method are described in greater detail belowwith respect to FIGS. 5-11.

FIG. 4 is a design model 400 according to an embodiment of theinvention. A design model 400 may include a 3D model made of solids. Thesolids may be referred to as blocks. Wall, floor, and roof segments maybe represented as distinct closed solids. This example design model 400is a model of a wall section, although other types of structures orobjects may be modeled. The model 400 of FIG. 4 includes a frame 410,sheathing 420, ribs 430, a conduit for systems 440, and spacing 450between these elements. The design model 400 may be of various formats,for example any CAD/CAM file type. As will be described in greaterdetail below, the abstraction engine computer 110 may analyze the model400 and generate instructions for building it.

FIG. 5 is a panel algorithm 320 according to an embodiment of theinvention. The abstraction engine computer 110 may receivespecifications 510. Specifications may be input by a user via a userinterface 130, retrieved from a saved file in a database 120, or inputin some other way. The specifications may include material specs, panelsizes, and frame thickness according to performance objectives, forexample. The abstraction engine computer 110 may select a largest closedsurface on each block and the closed surface closest to the ground plane520. The abstraction engine computer 110 may abstract the borders ofthese surfaces, and transform the borders into intersecting lines 530.Abstracting the borders may include pulling the 3D points thatcorrespond to the contour of a shape (and any holes in the shape) andtransforming these points into two-dimensional (2D) line/curve, forexample a 2D abstraction of a 3D surface similar to how one would handdraw geometry. The edges or vertices may be identified by analyzing forabrupt (hard-degree) shifts in line direction, and the contoured linesmay be broken up. For example, a rectangular wall surface may berepresented by a rectangular line drawing. The vertices/edges may beidentified by where the line slope changes by 90 degrees. The rectanglemay be divided into 4 separate lines that intersect at edges/vertices.The abstraction engine computer 110 may select a largest line parallelto the ground plane and a second line (the 3^(rd) largest) perpendicularto the ground plan. This process may be repeated for all blocks in apanel. Intersecting planes may be generated at specified intervals inthe blocks 540. This may be performed with a distance function. Forexample, distance (a, b, c . . . zn) may be a function which may bedesigned to accept inputs (in some embodiments, up to 10 inputs) used tocharacterize a line or curve and/or its derived surface or solid. Inthis case it may generate intersecting planes at specified intervals.First, the distance function may measure the length of a line. Thedistance function may find a point on the line at a distance equal tothe panel size from a start point. Directionality may be determined by amathematical proof that conveys the following mathematical principles.At an arbitrarily far distance from a line, curve, series of planes,series of points, or collection of solids of any geometric form orconfiguration, a point in (XYZ) space is placed. The distance from thispoint to any point on the line, curve, free floating point, or centroidpoint in planes or solids, may be such that all points may be orderedwith directionality away from the initial specified point. This meansthat with an arbitrarily drawn line or curve, all points can be orderedwith a defined start and end point in a general direction of movement.With all lines, curves, or points within a given surface or solid, thepoints may always be ordered such that the start and end points areconsistent in their directionality of left to right, bottom to top, orouter to inner. Once this point is located, the distance function maycalculate the tangent to a curve at the point, for example with atangent function. The distance function may generate an intersectingplane perpendicular to the surface with all points passing through thetangent and intersecting the solid. After distances are determined, theabstraction engine computer 110 may split the solids 550. This may bedone with a split function that may first find all points ofintersection between a plane and a solid and then transform the solidinto many solids split at intersection planes with cutting planes. Thesplit solids may be saved 560, for example into a panel array. Thepanels in the panel array may be labeled 570, for example with a labelalgorithm. The label algorithm may pull a layername from materialattributes of the solid which may have been defined in the inputspecifications or design model, and may name each panel as a sublayer ofa solid, which may be a sublayer of the design model name.

FIG. 6 is a deconstruction algorithm 330 according to an embodiment ofthe invention. The abstraction engine computer 110 may execute adeconstruction algorithm 330 to generate component parts of panelscreated by the panel algorithm 320. The abstraction engine computer 110may receive specifications 610, such as material specifications, framethicknesses, and/or sheathing thicknesses that may apply to the designmodel 400. These specifications may be included in the design model 400,extracted from a database 120, or otherwise input into the abstractionengine computer 110. The abstraction engine computer 110 may extractsurfaces from each panel 620 and extrude the surfaces parallel to anormal vector of each surface in the direction of the panel's centermoment 630. The extrude distance may be specified as the frame andsheathing thickness from the specifications. Each new solid may be savedinto arrays, for example arrSheathing[A] and arrFrames[B] 640. The savednew solids may be subtracted from original panels 650. This may producenew solids which may be saved to array, such as arrCavity for example. Asubtract function may be used to subtract the intersecting pointsbetween two solids. The subtract function may have the followingoutputs:

[Objects have zero intersecting points] The original solids withouttransformations

[Objects intersect at point or line] The original solids withouttransformations.

[Objects intersect at closed plane] Solids equal to the number of planeintersections split along planes.

[Objects intersect at closed surfaces] Generate an intersecting planeperpendicular to surface, with all points passing through tangent andintersecting the solid.

If the solids intersect in the form of a closed surface or solid, thenthe objects may be split along the closed surface or solid 670. A splitfunction may first find all points of intersection between a plane and asolid, and then may transform the solid into many solids split atintersection planes with cutting planes. The split solids may be saved680, for example into a panel array. The panels in the panel array maybe labeled 690, for example with a label algorithm. The label algorithmmay pull a layername from material attributes of the solid which mayhave been defined in the input specifications or design model, and mayname each panel as a sublayer of a solid, which may be a sublayer of thedesign model name.

FIG. 7 is a frame algorithm 340 according to an embodiment of theinvention. The abstraction engine computer 110 may execute a framealgorithm 340 to generate frames for panels generated as describedabove. The abstraction engine computer 110 may receive an array offrames comprising panels, notch (length), and/or spacing(length) 710.The notch and spacing lengths may be included in the design model 400,extracted from a database 120, or otherwise input into the abstractionengine computer 110. The abstraction engine computer 110 may findintersections of all frame members 720. The abstraction engine computer110 may use an intersect function to find the intersections. Theintersect function may have the following outputs:

[Objects have zero intersecting points] Array [null, 0)

[Objects intersect at line] Array [The line, 1)

[Objects intersect at closed plane] Array [The plane, 2)

[Objects intersect at closed surfaces] Array [the Object, 3)

For objects that intersect at closed surfaces, the abstraction enginecomputer 110 may find joints 730. This may be done, for example, with ajoint function which may take an object, subdivide it at specifieddistances, and split the object into blocks. The joint function may beused to produce these results by receiving cut plane distancesdetermined through application of a distance function (such as thatdescribed above with respect to FIG. 5), generating blocks throughapplication of a split function (such as that described above withrespect to FIG. 5), and subtracting the blocks from the frames. Theframes may be stored into arrays 740, for example arrVerticalFrames andarrHorizontalFrames arrays. The abstraction engine computer 110 maysubtract joint blocks from arrVerticalFrames to generate connectors 750and may subtract arrHorozontalFrames from arrVerticalFrames to generatenew arrays 760. The frames may be labeled and placed in an array withcoded labels to enable construction 770.

FIG. 8A is an algorithm 360 for generating the structural ribs that takeand redistribute compression load and impact load from wind, forexample, according to an embodiment of the invention. The abstractionengine computer 110 may execute a cavity algorithm 340 to extrudepanels. The frame algorithm 340 may create a cavity that serves as theinput for this algorithm 350. Algorithm 350 may abstract the cavity intoa lattice of ribs of thickness determined by a combination of a load persquare foot to be supported and an intrinsic compression and tensilestrength of the materials used as specified by user input or thedatabase 120. This rib structure may give the panels the ability toconform to near any geometric shape, and may provide an elasticresistance to compression loads, wind loads, and earthquake events. Theabstraction engine computer 110 may receive a panel and cavity data andstructural requirements 810. The structural requirements may be includedin the design model 400, extracted from a database 120, or otherwiseinput into the abstraction engine computer 110. The panel and cavitydata may have been generated using the panel algorithm 320 anddeconstruction algorithm 330 described above. The abstraction enginecomputer 110 may calculate intersecting planes to the cavity in an X andY direction corresponding to the structural requirements 820. Theabstraction engine computer 110 may use the intersecting planes and thecavity to extract the intersecting surfaces 830. The abstraction enginecomputer 110 may transform surfaces into objects of specified thickness840. This may be done by applying an extrusion function which may take adistance, a vector direction, and a planar object as inputs from thepanel and cavity data and structural requirements. The abstractionengine computer 110 may convert a planar object into a solid with aZ-value equal to the distance specified and a surface normal parallel tospecified. Outputs of the extrusion function may include arrays of newvertical and horizontal objects. The abstraction engine computer 110 mayproduce connecting joints for the solids 850. The connecting joints maybe stored into arrays 860, for example arrVerticalRibs andarrHorizontalRibs arrays. The objects themselves, including the joints,may also be stored into an array 870, for example anarrrRibs(arrVerticalRibs, arrHorozontalRibs array. The objects may belabeled based on material attributes 880. The labels may includenumerical codes. FIGS. 8B and 8C depict example ribs which may begenerated with the process of FIG. 8A.

FIG. 9 is a sheathing algorithm 350 according to an embodiment of theinvention. The abstraction engine computer 110 may execute a sheathingalgorithm 350 to generate sheathing. The abstraction engine computer 110may receive panel, rib, frame, sheathing, and opening (such as door andwindow) data 910. The sheathing and opening data may be included in thedesign model 400, extracted from a database 120, or otherwise input intothe abstraction engine computer 110. The panel, rib, and frame data maybe generated by the algorithms described above. Connecting jointsbetween objects may be generated 920, for example by using a processdescribed above with respect to FIG. 7. Ribs and frames generated asdescribed above may be appended to objects 930, and sheathing may besubtracted from the objects 940. The subtracted sheathing may be stored950, for example in an array. Openings may be created in the objects960. This may be done by applying an opening function to the objects,which may be able to create openings of any geometry in structure, andmay integrate the openings with existing components. First, openings maybe subtracted from existing objects. A deconstruction algorithm such asthat described above with respect to FIG. 6 may modify the objects bycreating components if needed, deleting the sheathing component, andstoring the remaining output. New joints and sheathing may be generatedand integrated with the previously existing objects, for example using ajoint function such as that described above with respect to FIG. 7.Existing objects may be modified and saved 970, and the arrays may beupdated to include new objects with openings 980 if any new componentswere generated.

FIG. 10 is a subdivide algorithm 370 according to an embodiment of theinvention. The subdivide algorithm 370 may allow the abstraction enginecomputer 110 to break components down to fit the maximum work area ofcorresponding fabrication machinery such as the CNC equipment 200described above. The abstraction engine computer 110 may receive inputmaximum lengths in the X,Y directions and an array of components 1000.The components may be those generated according to the processesdescribed above. The maximum lengths may be included in the design model400, input by a user via a user interface 130, retrieved from a savedfile in a database 120, or input in some other way. The abstractionengine computer 110 may apply a distance function (such as thatdescribed above with respect to FIG. 5) to the objects and the maximum Xlength to create cutplanes through objects in the X direction 1010. Theabstraction engine computer 110 may also apply a distance function tothe objects and the maximum Y length to create cutplanes through objectsin the Y direction 1020. The abstraction engine computer 110 may use thecutplane data to split objects along cutplanes 1030, for example throughapplication of a split function (such as that described above withrespect to FIG. 5). The split objects may be stored in a new array 1040and labeled, for example with a letter. The abstraction engine computer110 may find which segments create planar intersections with each other1050 and create joints between intersecting segments 1060, for exampleby using the intersection and joint algorithms described above. Thesegments may be labeled 1070, for example with the letter correspondingto the larger object of which they are a part. Existing objects may bemodified and saved 1080, and the arrays may be updated to include thenew labeled segments 1090.

FIG. 11 is a packing algorithm 375 according to an embodiment of theinvention. The packing algorithm 375 may enable efficient cutting ofcomponents from boards by CNC equipment 200. The abstraction enginecomputer 110 may receive data for all components except for sheathing,which may be generated as described above with respect to FIGS. 5-10, aswell as a board size 1105. The board size may be included in the designmodel 400, input by a user via a user interface 130, retrieved from asaved file in a database 120, or input in some other way. Theabstraction engine computer 110 may find the largest surface area oneach component and save the found area in an array 1110. Components maybe dynamically placed on the board 1115. A first object may be selected1120, and a subtract function such as that described above may be usedto see where objects extend outside the boundaries of the board 1130. Ifan object doesn't fit, the object may be rotated until it does notintersect the board or any other component. The abstraction enginecomputer 110 may determine if there is room for more objects on a board1130. If so, the abstraction engine computer 110 may select anotherobject which may fit on the board 1135, position the object on theremaining space on the board not occupied by the first object using thesubtract function 1125, and again determine if there is room for moreobjects on a board 1130. When the board is as full as possible, if moreobjects remain 1140, a new board template may be generated 1145 and theprocess may iterate. When all objects have been placed on boards, theabstraction engine computer 110 may define the center point on eachsurface and place a corresponding label at the point 1150. The labelsmay be those that were generated in previous steps in making the ribs(cavity algorithm) the frames, sheathing, openings, etc. These labelsmay be engraved on each piece by CNC so that builders may know when acomponent is used, what adjacent components it connects with, etc. Thelabels may be or include text, barcodes and/or RFID chips. Theabstraction engine computer 110 may check that the labels do not fall onany holes or cut-aways to ensure readability 1155. If so, text may bemoved parallel to the surface plane (X,Y) until this is no longer thecase. The abstraction engine computer 110 may output 2D line drawings ofthe template board, components, and their labels 1160.

FIG. 12 is an inventory and accounting algorithm 380 according to anembodiment of the invention. When the building components have beengenerated according to the processes of FIGS. 5-11 above, theabstraction engine computer 110 may locate inventory and/or pricing forthe components. Using a stored number of boards and project ID, theabstraction engine computer 110 may check a database 120 that holds thereal-time value for the specified material price, availability forpurchase, and inventory amount 1210. This may be a local database 120 orit may be a database 120 of a vendor or supplier accessible via anetwork 150. If enough material exists in inventory, the database 120may be updated to reflect usage 1230 and remove the material for theproject from the database 120. If not enough is available in inventory,a specified order amount may be documented and costs for the order maybe calculated 1240. The abstraction engine computer 110 may link with anaccounting form to track any purchases connected to the project 1250.Linking between database 120 and the 3D digital environment may beaccomplished through object linking and embedding (OLE) automation, C++processes, and/or XML, for example. The abstraction engine computer 110may receive a board size specification, for example from the designmodel 400, from a user via a user interface 130, from a saved file in adatabase 120, or in some other way. Components may be placed linearly inrows and columns 1270.

FIG. 13 is a method for generating surface printing instructions 1300according to an embodiment of the invention. This method 1300 may beused to print surfaces for use in assembling building components. Forexample, sheathing for parts generated as described above may bedesigned according to the method 1300 of FIG. 13. The abstraction enginecomputer 110 may receive a design model 1310, which may be a CAD/CAMfile or other data. The design model may be the same design model 400used in the method 300 described with respect to FIG. 3, in someexamples. The design model may be input by a user via a user interface130, it may be retrieved from a database 120, or it may be received bythe abstraction engine computer 110 in some other way. The abstractionengine computer 110 may apply a surface algorithm 1320 to the designmodel, which may produce one or more surfaces. The abstraction enginecomputer 110 may apply a developable surface algorithm 1330 and/orundevelopable surface algorithm 1340 to each surface. The abstractionengine computer 110 may then apply a fitting algorithm 1350 to thesurface. When each surface has been developed thusly, the result may beinput to a print machine which may print the surfaces 1360. The variousalgorithms used by this method are described in greater detail belowwith respect to FIGS. 15-18.

FIG. 14A is a design model 1400 according to an embodiment of theinvention. These surfaces may be the sheathing material (the surfacethat resists scratches, impacts, wind loads, etc., and functions as abuilding membrane. The print machine may print directly to this surfaceor onto a thin-film that may be welded (melded) to the sheathing or mayhave its printed pattern heat transferred onto the sheathing surface.The design model may include surfaces 1420 over a frame 1410.

FIG. 14B is a print machine 1430 according to an embodiment of theinvention. The print machine 1430 may be, for example, a large formatprinter into which the surface data may be fed. The print machine 1430may print the surface described by the surface data onto a raw roll 1440of some suitable surface material to produce a printed roll 1445. Thesurface data produced by the abstraction engine computer 110 may beformatted such that it is suitable for use by the print machine 1430.

FIG. 15 is a surface algorithm 1320 according to an embodiment of theinvention. The abstraction engine computer 110 may receive sheathingcomponent and finish specifications 1510. Sheathing specifications maybe outputted from the 3D to 2D digital abstraction described above withrespect to FIGS. 5-13. Finish specifications may be input by a user viaa user interface 130, retrieved from a saved file in a database 120, orinput in some other way. Finish specifications may be in the form of animage of a desired finish, for example in a .pdf file. The abstractionengine computer 110 may extract exposed surfaces from the sheathingcomponents 1520 and label each surface 1530.

FIG. 16 is a developable surface sheathing algorithm according to anembodiment of the invention. In mathematics, a developable surface (ortorse: archaic) is a surface with zero Gaussian curvature. That is, itis a surface that can be flattened onto a plane without distortion (i.e.stretching or compressing). A developable surface may be a surface whichcan be made by transforming a plane (i.e. by folding, bending, rolling,cutting, and/or gluing). The abstraction engine computer 110 may receivesheathing specifications 1610, which may have been developed using thesurface algorithm 1320. The abstraction engine computer 110 may extractsurfaces from the sheathing data and save the surfaces to an array 1620.The abstraction engine computer 110 may abstract the borders of thesurfaces and transform them into intersecting lines 1630. Theabstraction engine computer 110 may characterize the lines as straightor curved 1640. This may be done, for example, by selecting the largestline and the line perpendicular and characterizing the lines bydetermining whether [line length]=distance(startpoint, end point). Ifthey are equal, the line is straight, otherwise it is curved. Theabstraction engine computer 110 may map curved lines into linearapproximations at o={A, B}, which may generate a 2D surface 1650. Theabstraction engine computer 110 may use an extrude function to turn theshape into a flat 2D surface and extract a border contour 1660. Theabstraction engine computer 110 may map the texture to the surface 1670and output a shape contour (for example as a CAD file) and modifiedtexture map (for example as a .pdf file) 1680.

FIG. 17A is an undevelopable surface sheathing algorithm 1330 accordingto an embodiment of the invention. Undevelopable surfaces may besurfaces which cannot be formed from sheet material without the materialshearing in its plane. Surfaces of this type may have curvatures in twodifferent directions (they are therefore often called doubly-curvedsurfaces). Although these surfaces may be more difficult to manufacturethan flat or developable surfaces, their form may give them greatstiffness and strength. The abstraction engine computer 110 may receivesheathing specifications, which may have been developed using thesurface algorithm 1320, and a triangle selection 1710. The triangleselection may indicate a number of triangles to be used to warpfinishing to geometry. Because the surface is not developable, it curvesin multiple directions and therefore cannot be abstracted to a flatsurface. In order to produce a flat structure, the surface may beapproximated by tessellation with triangles. Each individual trianglemay be mapped flat such that the vertices of the triangles match withthe vertices of connected adjacent triangles that have already beenrendered flat. The triangle selection may be input by a user via a userinterface 130, it may be retrieved from a database 120, or it may bereceived by the abstraction engine computer 110 in some other way. Theabstraction engine computer 110 may extract surfaces from the sheathingdata and save the surfaces to an array 1720. The abstraction enginecomputer 110 may approximate triangle tessellations to the surfacecurvature 1730 and map the selected triangles from an r={X,Y,Z} to ao={A, B) plane 1740. The abstraction engine computer 110 may usedifferential equations to map adjacent triangles to the same planerecursively. The abstraction engine computer 110 may produce a 2Dtriangular map of the 3D structure 1750 and map the finish image to theshape 1760. The abstraction engine computer 110 may use an extrudefunction to turn the shape into a flat 2D surface and extract a bordercontour 1770. The abstraction engine computer 110 may output a shapecontour (for example as a CAD file) and modified texture map (forexample as a .pdf file) 1780. FIG. 17B illustrates an example of anundevelopable 3D surface translated into a 2D map, and FIG. 17Cillustrates an example triangle tessellation.

FIG. 18 is a finish template fitting algorithm 1350 according to anembodiment of the invention. This algorithm 1350 may be used by theabstraction engine computer 110 to generate an image file which may beused by a print machine 1430. The abstraction engine computer 110 mayreceive the outputs of the developable surface algorithm 1330 andundevelopable surface algorithm 1340, for example by retrieving themfrom the arrays in which they were saved 1810. The abstraction enginecomputer 110 may abstract the sheathing image onto the developablesurface algorithm 1330 output 1820. This mapping may be parallel withthe vector resultant from computation of relationship between extractedvectors. This means that the image file may be fitted to thetessellations. The image of the undevelopable surface flattened may havea background tessellation added for flat surfaces. The surface textureimage may also be tessellated with the same pattern such that the numberof triangles on the texture map and those on the surface are equal. Forall triangles on the texture map that are identical in shape/size tothose on the flattened system, no transformations are applied. For thosetriangles on the texture map that are of different shape/size to thoseon the flattened system, the texture map's triangle may be stretched orotherwise distorted such that the vertices fall on identical coordinatepoints as in the flattened image. Because of this stretching, thetexture map's image is also distorted. The abstraction engine computer110 may overlay in back layer the undevelopable surface algorithm 1340output 1830. The image file may be regenerated with the distortionsapplied and with the triangle pattern invisible. This may become thefile that is printed onto the surfaces. This may guarantee that theimage shows proper adjustments for rendering properly on a curved ratherthan flat surface. An image file may be produced from the mapping 1820and overlay 1830, and this image file may be stored 1840, for example ina database 120. This image file may also be sent to a printer 1430 toenable printing of the sheathing as described above.

FIG. 19 is a method for placing building systems 1900 according to anembodiment of the invention. Building systems may include plumbing,electrical wiring, and other elements which may be disposed within theinterior of a building wall. This method 1900 may be used to modifypreviously generated building components (for example, buildingcomponents generated with the processes described above) to accommodatethese building systems. The abstraction engine computer 110 may receivea construction model 1910, which may be a CAD/CAM file or other data andmay include a set of structural elements and building systems. Theconstruction model may be input by a user via a user interface 130, itmay be retrieved from a database 120, or it may be received by theabstraction engine computer 110 in some other way. The abstractionengine computer 110 may apply a building system sort 1920 to extractbuilding system fixtures from the construction model and group thebuilding system fixtures by type. For each type, the abstraction enginecomputer 110 may find best fits for the fixtures 1930 and generatejoints 1940. The results may be fed into construction systems. Forexample, a tubing machine may receive joint data and use it to cut andlabel tubing and/or produce joints 1950. Premade joints may also bepurchased using an inventory report generated by the abstraction enginecomputer 110. Furthermore, space for the building systems may besubtracted from the previously generated building components based onthe best fit analysis, and the components may be modified in the filesused for CNC milling as described above 1960. The various algorithmsused by this method are described in greater detail below with respectto FIGS. 21-23.

FIG. 20A is a construction model 2000 according to an embodiment of theinvention. In this example model 2000, building systems are integratedinto a structure. A sink 2005 is one example of a building system. Here,the sink 2005 may intersect with a wall 2001 at an intersection plane2010. The method 1900 of FIG. 19 may modify the wall 2001 to accommodatethe sink 2005. The sink 2005 may be associated with pipes including ap-joint 2015. The pipes and joint 2015 may be generated by the method1900 of FIG. 19. A toilet 2020 is another example of a building system.The floor 2021 may be modified by the method 1900 of FIG. 19 toaccommodate plumbing for the toilet 2020.

FIG. 20B is a construction model 2050 according to an embodiment of theinvention. A floor 2060 may be a building structure previously generatedby the method of FIG. 3, for example. Space for a plumbing line 2055 maybe inserted into the floor 2060 by the method 1900 of FIG. 19. Pipelengths and joints for the line 2055 itself may also be generated by themethod 1900 of FIG. 19.

FIG. 20C is a set of joint types according to an embodiment of theinvention. The pictured joints 2075, 2080, 2085, and 2090 are examplesof joints which may be generated by the method 1900 of FIG. 19, althoughother joints are possible.

FIG. 21 is a building system sort algorithm 1920 according to anembodiment of the invention. Many building systems may have specificrequirements, such as drains being paired with a p-joint or toiletsrequiring 2.5″ diameter drains while hot and cold water piping can be 1″in diameter. The abstraction engine computer 110 may receive aconstruction model with building system components 2110 and check adatabase 120 for building system component data 2120. The component datamay identify the requirements and/or specifications of the buildingsystems identified in the model. The abstraction engine computer 110 mayuse the component data to further specify which fixtures are needed forthe building. The abstraction engine computer 110 may extract thefixtures 2130 and group them by type 2140. For example, the abstractionengine computer 110 may store the fixtures under identifying tags suchas drains, hot water, cold water, electrical, HVAC, etc.

FIG. 22 is a best fit algorithm 1930 according to an embodiment of theinvention. The abstraction engine computer 110 may apply the best fitalgorithm 1930 to the fixture data produced by the building sortalgorithm 1920 and the building panels to provide space for the fixturesin the building panels. The abstraction engine computer 110 may receivethe results of the building system sort 2210 on a group by group basis,for example hot water, drains, or electrical. The abstraction enginecomputer 110 may find orthogonal lines of best fit for connecting allfixtures under the same tag to each other within panels 2220. This maybe accomplished by using an intersect function to determine a directionin which a fixture such as a pipe may pass through an intersecting wallin an effort to get from pt1=(X,Y,Z) to pt2=(A, B, C), where pt1 and pt2are defined as the location of connecting fixtures. Depending on thefixture tag, additional manipulations may be performed 2230. Forexample, in the case of a drain, a vertical pipe may be required to beplaced exiting the structure within 6 feet of a toilet. The abstractionengine computer 110 may identify an appropriate location for thevertical pipe. In another example, in the case of electrical wiring,electrical outlet boxes may be required to be placed at specifieddistances in contours of each room. The abstraction engine computer 110may identify an appropriate location for each outlet. When lines andadditional manipulations have been determined, the abstraction enginecomputer 100 may model the lines as cylinders or other spaces of aspecified diameter or dimension 2240. The dimension for a particularspace may depend on the type of element to be contained within, such asa hot water pipe, drain, or electrical conduit.

FIG. 23 is a joint sorting algorithm 1940 according to an embodiment ofthe invention. The abstraction engine computer 110 may take buildingsystem pipes (from the construction model and best fit algorithmdescribed above) and specification of maximum pipe lengths as inputs2300. The maximum pipe lengths may be input by a user via a userinterface 130, may be retrieved from a database 120, or may be receivedby the abstraction engine computer 110 in some other way. Pipes may bestored in separate arrays with tags specifying pipe type, for exampledrains, hot/cold water, electrical, etc. An intersect function may beused to find locations where pipes of the same tag intersect each other2310. A generate joint function may be used to process the intersectionand determine appropriate joints for each intersection 2320. Forexample, the generate joint function may produce outputs such as:

[If 2 pipes intersect and are parallel] coupling joint

[If 2 pipes intersect are orthogonal] cross joint

[If 3 pipes intersect; 2 parallel, 1 orthogonal] T-joint

For type of intersection and relationship between pipes, a correspondingjoint may be pulled from an inventory database and placed in the model2330. Also, an inventory form may be updated to include anidentification of each joint used. A subtract function may be used tosubtract joints from all intersecting pipes in the model 2340. Theabstraction engine computer 110 may use a subdivide function on thepipes to identify any remaining pipes longer than the specified maximumlength and split them to lengths less than the maximum lengths 2350. Theabstraction engine computer 110 may use the generate joint function toadd coupling joints to join the split pipes 2355. Each pipe may be givena label 2360, and the label tag and length of each pipe may be stored inan array 2370. The abstraction engine computer 110 may use an efficientcuts algorithm to minimize waste and maximize number of pipes producedfrom each template 2380. The efficient cut algorithm may take as inputthe length of template pipes and the array(label tags, pipe lengths) andoutput efficiently produced cuts. If unused pipe remains, but no pipesin the array are of sufficient size, then current template pipe may besaved and marked with corresponding tags, and the process may repeatwith a new template pipe. The abstraction engine computer 110 may outputa file containing template pipes with cuts and tags specified as well asan inventory file containing a list of joints-types used and a number ofjoints of each type required 2390.

In one example, magnetized conduits and/or joints may be generatedaccording to the methods of FIGS. 21-23. Magnetic conduits may connectlike plumbing does with couple joints, T-joints, cross joints, etc.However, the magnetic conduits and joints may be magnetized todistribute eddy currents and/or for ease of assembly. The magneticjoints may eliminate a need to thread the wiring within the conduit, andmay allow electricity to flow through a series of conduits and/or jointsdue to the surface-surface contact of the metal leads. Also, thesemagnetic conduits and joints may include layers (for example twoinsulator layers with a metal layer sandwiched between) to create awaveguide allowing for the electrical system to propagateelectromagnetic radiation, for example microwave radiation. This maycreate an electrical circuit throughout the structure, as well as anoptical circuit. The optical circuit may enable the use of highly energyefficient electrodeless lighting elements.

FIG. 24 is a method for generating joints 2400 according to anembodiment of the invention. This method 2400 may be used to generateand place joints in the various panels, frames, and/or other objectscreated as described above. For example, push joints 225 such as thosedescribed with respect to FIGS. 2A-2B and/or slide joints may be used tojoin the objects. The abstraction engine computer 110 may take aconstruction model as input 2410. The construction model may be input bya user via a user interface 130, may be retrieved from a database 120,or may be received by the abstraction engine computer 110 in some otherway. For example, the construction model may include the data aboutvarious objects generated by the abstraction engine computer 110 asdescribed above. The abstraction engine computer 110 may apply a panelsort algorithm to the construction model 2420, which may identify andlocate the panels in the model. The abstraction engine computer 110 mayapply a panel intersection sort algorithm to the panels 2430. The panelintersection sort algorithm may loop through the frame members of allpanels and find which frames intersect with other panel frames, andwhich frames intersect with roof/floor systems. Panel intersections maystored in arrays. Panel-panel intersections and panel-floor/roofintersections may be stored in separate arrays. For each intersectionarray, the abstraction engine computer 110 may generate joints. Forexample, the abstraction engine computer 110 may apply a slide jointalgorithm to the panel-floor/roof intersections 2440. The abstractionengine computer 110 may pull from the database 120 one of twopre-defined joints for integration for each intersection, for example.These joints may be slide joints or plate joints. A slide joint maycontain two components, a plate that connects directly to the frame andhas attached a male-tab and a female plate that connects to foundationor roof members and receives the male joints. The female plate may befixed to the foundation with screws or other fasteners. The male platejoint may be connected directly to the frame through welding of thematerials, and/or screwing into the foundation as with the female plate.The database 120 may contain 2D outlines of the male/female slide jointsand the plate shapes in cross section. These line drawings may be pulledand placed in the 3D environment at the base of the frame by theabstraction engine computer 110. The lines may then be extruded suchthat the 2D line drawing becomes a 3D object of depth equal to that ofthe panel dimension. FIGS. 25A-C depict example slide/plate joints whichmay be created by this algorithm 2440. The abstraction engine computer110 may apply a push joint algorithm to the panel-panel intersections2450. This algorithm may generate a cylinder of arbitrary length andradius dictated by user input or requirements stored in the database120. This cylinder may be arrayed along the intersecting panel frames asuser specifies or specifications dictate. For example, the number ofcylinders may be chosen according to the structural strength required.An array may be defined as a function that creates copies of a solid,line, or point such that they are distributed at specified intervals inX,Y,Z directions. For example, cylinders may be arrayed on (X,Y), (Y,Z),or (X,Z) planes corresponding to the dimensions of the intersectingframe members. Once the cylinders have been placed, they may besubtracted from the frames, leaving behind holes. The number ofcylinders created may be counted and stored in the inventory database120 to keep track of the number of push joints that correspond to thenumber of holes. Push joints may be made identical so that theabstraction engine computer 110 does not need to keep track of 3D pushjoint representations, though it may in some embodiments. FIGS. 25D-Fdepict example push joints which may be generated by this algorithm2450.

When the processes described above are completed for a building project,the resulting designs may be constructed. An example constructionprocess may proceed as follows:

1. CNC Cutting: Standard CNC Laser, WaterJet, or router may be used tomill 2D components as dictated by the output files. CNC machinery withmodifications as described above in FIG. 2A may be used to promotemodular builds, variable sizes, and compact/lightweight shipping. Forexample, a CNC bed may comprise 20′×10′ modules that can be arrayed toprint longer and wider panels and folded for efficient packing.

2. Building Systems Pipe Cutting: A linear robotically controlledmachine may use laser, waterjet, or router to mill from template pipingand conduit the specified dimension of material as dictated by theoutput file from the building system algorithms.

3. Manual Assembly: Based on instructions in the 3D file map, the 2Dcomponents may be assembled into 3D form and building systems may beinserted into prepared slots.

4. Sheathing Preparation: Automated cutting of the sheathing using CNCmachinery, in conjunction with a vacuum forming process for fittingsheathing to the contour of the 3D panel may be performed.

5. Sheathing Finishing Application: Large-format printer may produce atexture map on a thin film roll, and a vacuum forming process may fitthe map to the sheathing prior to welding.

6. Insulation Application: Robotic CNC equipment may extrude insulationinto panel cavities

7. Assembly: Machinery may assemble large panels.

8. Finishes Application: Wood flooring, tile, etc. may be cut intomodular pieces contoured to the sheathing shape.

FIG. 26 is a system 2600 according to an embodiment of the invention Acomputer 170 may be in communication, for example via the internet, withone or more servers which may perform the functions depicted in FIG. 26.In other embodiments, the functions shown in FIG. 26 may be performedlocally by the computer 170. As seen in FIG. 26, the system 2600 mayprovide a design catalog 2610 and design rating function 2620,customization 2630 with wall selection 2640 and/or product selection2650, purchasing system 2660, and/or back end support 2670. Using objectmodel data generated according to the processes described above, thesystem 2600 may generate 3D models of structures. Construction models(design models used to create the fabrication files) may be loaded bythe system 2600. Construction models may be uploaded by a user and/ormay be available within a design catalog 2610. A user may choose designsfrom the design catalog 2610 for display and may rate the designs in thecatalog 2610. A design rating function 2620 may display various designsto a user, for example randomly, and receive a user rating of displayeddesigns. The user ratings may be used by the design rating function 2620to assess user preferences and select designs more likely to appeal tothe user.

The models may include the layers that define walls, floors, and variousbuilding systems such as toilets and sinks. Also included may be stoves,furnishings, decorations, and people. Each 3D object in the model may berepresented as a layered entity, so functions such as obj.visible may beused to turn layers on or off. Turning a layer on may cause the layer toappear in the model. Turning a layer off may cause the layer todisappear. A customization function 2630 may allow a user to modify amodel, for example by providing choices of object colors and finishesand/or by allowing a user to modify building elements and/or peripheralproducts.

Elements may be placed into different classes. For example, a buildingelements class may govern walls, floors, and roof structures. Objects inthis class may have attributes such as colors, finishes, coordinates,dimensions, prices, and wall function( ) 2640. The wall function 2640may be an algorithm that, based on the dimensions of the buildingelement, may search a database 120 for all walls that have identicaldimension elements. So for instance, if a wall is 4′×10′, only existingwalls within the database that are also this size may be found. Thesewalls may be curved, angular, or in a multitude of configurations aslong as a rectilinear box that encompasses the structure has XYdimensions of 4′×10′. A user may select a wall that appeals to them, andthe selected wall be placed at the same coordinates as the original.

A peripheral product class may govern furnishings or fixtures that donot make up the structure of the building but may be placed in thebuilding. Objects in this class may have coordinates, dimensions, tags,prices, and a peripheral product function( ) 2650. This function 2650may search the database 120 for all products of similar tag that fitwithin the dimensional constraints specified. For instance, if onewanted to change out a sink for a new design, the system 1600 may usethe tag ‘sink’ to search for all instances of sinks in the database 120and allow the user to browse these to select a sink for placement in themodel.

The system 2600 may allow a user to purchase buildings and/or buildingelements displayed to the user by the system 2600. The purchasing system2660 may function by accessing the full itemized list of elements withinthe 3D environment that are linked to the purchasing user (i.e., a setof elements associated with the selections made with functions 2610-2650described above). Elements such as building elements and peripheralproducts may be sorted and itemized and associated with prices. Forexample, a selection of a home with 10 walls and 5 floor and roofmembers may cause the purchasing system 2660 to produce a data formcontaining each of these objects, the standard costs per panel forrectilinear, single curvature, and multi curvature features, and anyadditional costs for personalized colors or finishes added. These perpanel costs may then be added to obtain a total cost for purchasing theunit. If the user also specifies toilets, sinks, cabinets, furniture,and other systems, these also would be itemized according to purchaseand installation costs to derive an overall cost. When the userindicates that they are ready to purchase, these costs, elementinformation, and the resultant design may be stored in a purchasingdatabase 120 for access by vendors. In some embodiments a user may becontacted by a sales representative to finalize the order and setuppayments. In other embodiments users may be able to purchase unitsdirectly online. Financing plans may be made available. Also,cloudsourcing processes may be made available to allow multipleindividuals to pay towards the construction of the same building, forexample in the case of humanitarian housing wherein multiple users mayhave access to the design and the payment structure. In another example,bridal registries may enable groups to make payments towards the costsof a structure. Payment, building permitting (which may includecontacting users for paperwork approval), material ordering,construction plan generation, and/or other functions may be handled by aback end system 2670, which may include the abstraction engine computer110 for plan generation in some embodiments. If all portions of thedesign are premade in a database 120, then a print file prepared for afabrication facility by the back end system 2670 may pull cut files thatcorrespond to each individual wall from the database 120. If any wallsare novel, these may be converted and then appending to the cut fileaccording to the processes described above. If the whole house is fromthe catalog with no changes, the full home file may be printed with nointermediate steps. The system 2600 may also allow for additions toexisting structures to be generated in a similar manner,

While various embodiments have been described above, it should beunderstood that they have been presented by way of example and notlimitation. It will be apparent to persons skilled in the relevantart(s) that various changes in form and detail can be made thereinwithout departing from the spirit and scope. In fact, after reading theabove description, it will be apparent to one skilled in the relevantart(s) how to implement alternative embodiments. For example, while theabove examples are presented in the context of OPSs 200 connecting tonodes 150, it will be understood that the systems and methods describedherein can be performed by any interconnected computers. Thus, thepresent embodiments should not be limited by any of the above-describedembodiments.

In addition, it should be understood that any figures which highlightthe functionality and advantages are presented for example purposesonly. The disclosed methodology and system are each sufficientlyflexible and configurable such that they may be utilized in ways otherthan that shown.

Although the term “at least one” may often be used in the specification,claims and drawings, the terms “a”, “an”, “the”, “said”, etc. alsosignify “at least one” or “the at least one” in the specification,claims and drawings.

Finally, it is the applicant's intent that only claims that include theexpress language “means for” or “step for” be interpreted under 35U.S.C. 112, paragraph 6. Claims that do not expressly include the phrase“means for” or “step for” are not to be interpreted under 35 U.S.C. 112,paragraph 6.

What is claimed is:
 1. A method comprising: receiving, with a processorin communication with a database, a design model comprising buildingspecifications; defining, with the processor, a panel in the designmodel; and generating, with the processor, a frame design and asheathing design for the panel.
 2. The method of claim 1, wherein thedefining of the panel comprises: identifying, with the processor, astructural block in the design model; identifying, with the processor, alargest closed surface on the structural block and a closed surfaceclosest to a ground place on the structural block; determining, with theprocessor, a border of the largest closed surface; determining, with theprocessor, a border of the closed surface closest to the ground plane;transforming, with the processor, the border of the largest closedsurface and the border of the closed surface closest to the ground planeinto intersecting lines; generating, with the processor, intersectingplanes at predetermined intervals from the intersecting lines;determining, with the processor, points of intersection between theintersecting planes and the structural block; splitting, with theprocessor, the structural block at the points of intersection betweenthe intersecting planes and the structural block; and defining, with theprocessor, each split section of the structural block as a panel.
 3. Themethod of claim 1, wherein the generating of the frame design and thesheathing design for the panel comprises: receiving, with the processor,material and/or structural specifications; extracting, with theprocessor, a frame surface design and a sheathing surface design fromthe panel according to the material and/or structural specifications;extruding, with the processor, the frame surface design and thesheathing surface design according to the material and/or structuralspecifications; subtracting, with the processor, the extruded framesurface design and the extruded sheathing surface design from the panelto determine the cavity; and defining, with the processor, the framesurface design and the sheathing surface design as a panel comprisingthe frame design and the sheathing design.
 4. The method of claim 3,wherein the generating of the frame design and the sheathing design forthe panel further comprises: identifying, with the processor, a largestclosed surface on the panel comprising the frame design and thesheathing design and a closed surface closest to a ground place on thepanel comprising the frame design and the sheathing design; determining,with the processor, a border of the largest closed surface; determining,with the processor, a border of the closed surface closest to the groundplane; transforming, with the processor, the border of the largestclosed surface and the border of the closed surface closest to theground plane into intersecting lines; generating, with the processor,intersecting planes at predetermined intervals from the intersectinglines; determining, with the processor, points of intersection betweenthe intersecting planes and the panel comprising the frame design andthe sheathing design; splitting, with the processor, the panelcomprising the frame design and the sheathing design at the points ofintersection between the intersecting planes and the structural block;and labeling, with the processor, each split section of the panelcomprising the frame design and the sheathing design.
 5. The method ofclaim 3, wherein the generating of the frame design for the panelcomprises: identifying, with the processor, a plurality of frame membersfor the frame design; determining, with the processor, points ofintersection between the plurality of frame members; splitting, with theprocessor, the frame design at the points of intersection between theframe members; generating, with the processor, connectors configured toconnect the plurality of frame members at the points of intersection;and labeling, with the processor, each split section of the framedesign.
 6. The method of claim 3, wherein the generating of the framedesign for the panel comprises: generating, with the processor, a ribstructure design for the frame design based on a load per area to besupported and/or a construction material characteristic.
 7. The methodof claim 3, wherein the generating of the frame design and the sheathingdesign for the panel further comprises: receiving, with the processor,an opening for the panel; subtracting, with the processor, the openingfrom the frame surface design and the sheathing surface design;identifying, with the processor, a plurality of frame members for theframe design, wherein the frame members are not located at the opening;determining, with the processor, points of intersection between theplurality of frame members; splitting, with the processor, the framedesign at the points of intersection between the frame members;generating, with the processor, connectors configured to connect theplurality of frame members at the points of intersection; and labeling,with the processor, each split section of the frame design.
 8. Themethod of claim 1, further comprising: receiving, with the processor, amaximum dimension; determining, with the processor, a dimension of theframe design and/or of the sheathing design; when the dimension of theframe design and/or of the sheathing design is greater than the maximumdimension, defining, with the processor, a cutplane for the frame designand/or the sheathing design; splitting, with the processor, the framedesign and/or the sheathing design into a plurality of segments alongthe cutplane; determining, with the processor, points of intersectionbetween the plurality of segments; generating, with the processor,connectors configured to connect the plurality of segments at the pointsof intersection; and labeling, with the processor, each segment.
 9. Themethod of claim 1, further comprising: receiving, with the processor, amaximum area; determining, with the processor, an area of the framedesign and/or of the sheathing design; fitting, with the processor, theframe design and/or the sheathing design into the maximum area; andgenerating, with the processor, a specification including the fit of theframe design and/or the sheathing design into the maximum area.
 10. Themethod of claim 1, further comprising: checking, with the processor, thedatabase to determine an availability of a component of the panel in aninventory; when the component is available, removing, with theprocessor, the component from the database; and when the component isnot available, generating, with the processor, an order for thecomponent.
 11. The method of claim 1, further comprising operating acomputer numerical control (CNC) system according to the frame designand the sheathing design for the panel.
 12. The method of claim 1,further comprising generating, with the processor, a surface design forthe panel.
 13. The method of claim 12, wherein the generating of thesurface design further comprises: identifying, with the processor, anexposed surface of the panel; determining, with the processor, a borderof the exposed surface; transforming, with the processor, the border ofthe exposed surface into intersecting lines; mapping, with theprocessor, the intersecting lines into a linear approximation to producea two dimensional surface design; extracting, with the processor, aborder contour for the two dimensional surface design; mapping, with theprocessor, a texture design to the two dimensional surface design;generating, with the processor, a shape contour and a modified texturemap corresponding to the two dimensional surface design and texturedesign.
 14. The method of claim 12, wherein the generating of thesurface design further comprises: identifying, with the processor, anexposed surface of the panel; approximating, with the processor, atriangle tessellation to a curvature of the exposed surface; mapping,with the processor, a triangle to the triangle tessellation; generating,with the processor, a two dimensional surface design from the mappedtriangle; extracting, with the processor, a border contour for the twodimensional surface design; mapping, with the processor, a texturedesign to the two dimensional surface design; generating, with theprocessor, a shape contour and a modified texture map corresponding tothe two dimensional surface design and texture design.
 15. The method ofclaim 12, further comprising printing the surface design.
 16. The methodof claim 1, further comprising: identifying, with the processor, afixture design; and modifying, with the processor, the panel to includespace for the fixture design.
 17. The method of claim 16, wherein theidentifying of the fixture design includes determining, with theprocessor, a fixture type.
 18. The method of claim 17, furthercomprising searching, with the processor, the database to determine aspatial requirement of the fixture type.
 19. The method of claim 16,wherein the modifying of the panel comprises: determining, with theprocessor, a best fit line within the panel for the fixture; andsubtracting, with the processor, a space along the best fit line fromthe frame design and/or the sheathing design.
 20. The method of claim19, further comprising determining, with the processor, a dimension ofthe space based on a spatial requirement of the fixture design.
 21. Themethod of claim 19, further comprising subtracting, with the processor,an additional space from the frame design and/or the sheathing designbased on a spatial requirement of the fixture design.
 22. The method ofclaim 1, further comprising: identifying, with the processor, a fixturedesign; and generating, with the processor, assembly instructions forthe fixture design.
 23. The method of claim 22, wherein the generatingof the assembly instructions for the fixture design comprisesdetermining a dimension of a pipe design and/or a conduit design. 24.The method of claim 22, wherein the generating of the assemblyinstructions for the fixture design comprises: receiving, with theprocessor, a maximum dimension for each of a plurality of pipe designsand/or conduit designs; locating, with the processor, an intersectionpoint between the plurality of pipe designs and/or conduit designs;generating, with the processor, a joint design corresponding to theintersection point; modifying, with the processor, the plurality of pipedesigns and/or conduit designs to accept the joint design; when one ofthe plurality of pipe designs and/or conduit designs has a dimensiongreater than the maximum dimension, dividing, with the processor, theone of the plurality of pipe designs and/or conduit designs; andlabeling, with the processor, the plurality of pipe designs and/orconduit designs.
 25. The method of claim 24, wherein the generating ofthe assembly instructions for the fixture design further comprises:receiving, with the processor, a maximum length; determining, with theprocessor, a length of each of the plurality of pipe designs and/orconduit designs; fitting, with the processor, the plurality of pipedesigns and/or conduit designs into the maximum length; and generating,with the processor, a specification including the fit of the pluralityof pipe designs and/or conduit designs into the maximum length.
 26. Themethod of claim 22, further comprising operating a tubing systemaccording to the assembly instructions for the fixture.
 27. The methodof claim 1, further comprising: determining, with the processor, anintersection between the panel and another surface; and generating, withthe processor, a joint design for the intersection.
 28. The method ofclaim 27, wherein: when the intersection is between the panel and asecond panel, the joint design is a push joint design and the generatingof the push joint design comprises extracting, with the processor, acylinder from the panel at a point on the intersection and acorresponding cylinder from the second panel at a corresponding point onthe intersection; and when the intersection is between the panel and afloor or ceiling, the joint design is a slide joint design and thegenerating of the slide joint design comprises generating, with theprocessor, a joint hardware element design and extracting, with theprocessor, a space for the joint hardware element design from the panel.29. The method of claim 1, further comprising: generating, with theprocessor, a visual model of a structure according to the frame designand the sheathing design; and causing, with the processor, the visualmodel to be displayed on a display.
 30. The method of claim 29, furthercomprising: receiving, with the processor, a user command associatedwith the visual model; and performing, with the processor, an action inresponse to the user command, the action comprising modifying the visualmodel, associating a rating with the visual model, requesting a paymentassociated with the visual model, and/or generating constructioninstructions associated with the visual model.
 31. A system comprising:a database; and a processor in communication with the database, theprocessor constructed and arranged to: receive a design model comprisingbuilding specifications; define a panel in the design model; andgenerate a frame design and a sheathing design for the panel.
 32. Thesystem of claim 31, wherein the processor is constructed and arranged todefine the panel by: identifying a structural block in the design model;identifying a largest closed surface on the structural block and aclosed surface closest to a ground place on the structural block;determining a border of the largest closed surface; determining a borderof the closed surface closest to the ground plane; transforming theborder of the largest closed surface and the border of the closedsurface closest to the ground plane into intersecting lines; generatingintersecting planes at predetermined intervals from the intersectinglines; determining points of intersection between the intersectingplanes and the structural block; splitting the structural block at thepoints of intersection between the intersecting planes and thestructural block; and defining each split section of the structuralblock as a panel.
 33. The system of claim 31, wherein the processor isconstructed and arranged to generate the frame design and the sheathingdesign for the panel by: receiving material and/or structuralspecifications; extracting a frame surface design and a sheathingsurface design from the panel according to the material and/orstructural specifications; extruding the frame surface design and thesheathing surface design according to the material and/or structuralspecifications; subtracting the extruded frame surface design and theextruded sheathing surface design from the panel to determine thecavity; and defining the frame surface design and the sheathing surfacedesign as a panel comprising the frame design and the sheathing design.34. The system of claim 33, wherein the processor is further constructedand arranged to generate the frame design and the sheathing design forthe panel by: identifying a largest closed surface on the panelcomprising the frame design and the sheathing design and a closedsurface closest to a ground place on the panel comprising the framedesign and the sheathing design; determining a border of the largestclosed surface; determining a border of the closed surface closest tothe ground plane; transforming the border of the largest closed surfaceand the border of the closed surface closest to the ground plane intointersecting lines; generating intersecting planes at predeterminedintervals from the intersecting lines; determining points ofintersection between the intersecting planes and the panel comprisingthe frame design and the sheathing design; splitting the panelcomprising the frame design and the sheathing design at the points ofintersection between the intersecting planes and the structural block;and labeling each split section of the panel comprising the frame designand the sheathing design.
 35. The system of claim 33, wherein theprocessor is constructed and arranged to generate the frame design forthe panel by: identifying a plurality of frame members for the framedesign; determining points of intersection between the plurality offrame members; splitting the frame design at the points of intersectionbetween the frame members; generating connectors configured to connectthe plurality of frame members at the points of intersection; andlabeling each split section of the frame design.
 36. The system of claim33, wherein the processor is constructed and arranged to generate theframe design for the panel by: generating a rib structure design for theframe design based on a load per area to be supported and/or aconstruction material characteristic.
 37. The system of claim 33,wherein the processor is further constructed and arranged to generatethe frame design and the sheathing design for the panel by: receiving anopening for the panel; subtracting the opening from the frame surfacedesign and the sheathing surface design; identifying a plurality offrame members for the frame design, wherein the frame members are notlocated at the opening; determining points of intersection between theplurality of frame members; splitting the frame design at the points ofintersection between the frame members; generating connectors configuredto connect the plurality of frame members at the points of intersection;and labeling each split section of the frame design.
 38. The system ofclaim 31, wherein the processor is further constructed and arranged to:receive a maximum dimension; determine a dimension of the frame designand/or of the sheathing design; when the dimension of the frame designand/or of the sheathing design is greater than the maximum dimension,define a cutplane for the frame design and/or the sheathing design;split the frame design and/or the sheathing design into a plurality ofsegments along the cutplane; determine points of intersection betweenthe plurality of segments; generate connectors configured to connect theplurality of segments at the points of intersection; and label eachsegment.
 39. The system of claim 31, wherein the processor is furtherconstructed and arranged to: receive a maximum area; determine an areaof the frame design and/or of the sheathing design; fit the frame designand/or the sheathing design into the maximum area; and generate aspecification including the fit of the frame design and/or the sheathingdesign into the maximum area.
 40. The system of claim 31, wherein theprocessor is further constructed and arranged to: check the database todetermine an availability of a component of the panel in an inventory;when the component is available, remove the component from the database;and when the component is not available, generate an order for thecomponent.
 41. The system of claim 31, wherein the processor is furtherconstructed and arranged to send the frame design and the sheathingdesign for the panel to a computer numerical control (CNC) system. 42.The system of claim 31, wherein the processor is further constructed andarranged to generate a surface design for the panel.
 43. The system ofclaim 42, wherein the processor is further constructed and arranged togenerate the surface design by: identifying an exposed surface of thepanel; determining a border of the exposed surface; transforming theborder of the exposed surface into intersecting lines; mapping theintersecting lines into a linear approximation to produce a twodimensional surface design; extracting a border contour for the twodimensional surface design e; mapping a texture design to the twodimensional surface design; generating a shape contour and a modifiedtexture map corresponding to the two dimensional surface design andtexture design.
 44. The system of claim 42, wherein the processor isfurther constructed and arranged to generate the surface design by:identifying an exposed surface of the panel; approximating a triangletessellation to a curvature of the exposed surface; mapping a triangleto the triangle tessellation; generating a two dimensional surfacedesign from the mapped triangle; extracting a border contour for the twodimensional surface design; mapping a texture design to the twodimensional surface design; generating a shape contour and a modifiedtexture map corresponding to the two dimensional surface design andtexture design.
 45. The system of claim 42, wherein the processor isfurther constructed and arranged to send the surface design to aprinter.
 46. The system of claim 31, wherein the processor is furtherconstructed and arranged to: identify a fixture design; and modify thepanel to include space for the fixture design.
 47. The system of claim46, wherein the processor is constructed and arranged to identify thefixture design by determining a fixture type.
 48. The system of claim47, wherein the processor is further constructed and arranged to searchthe database to determine a spatial requirement of the fixture type. 49.The system of claim 46, wherein the processor is constructed andarranged to modify the panel by: determining a best fit line within thepanel for the fixture design; and subtracting a space along the best fitline from the frame design and/or the sheathing design.
 50. The systemof claim 49, wherein the processor is further constructed and arrangedto determine a dimension of the space based on a spatial requirement ofthe fixture design.
 51. The system of claim 49, wherein the processor isfurther constructed and arranged to subtract an additional space fromthe frame design and/or the sheathing design based on a spatialrequirement of the fixture design.
 52. The system of claim 31, whereinthe processor is further constructed and arranged to: identify a fixturedesign; and generate assembly instructions for the fixture design. 53.The system of claim 52, wherein the processor is constructed andarranged to generate the assembly instructions for the fixture design bydetermining a dimension of a pipe design and/or a conduit design. 54.The system of claim 52, wherein the processor is constructed andarranged to generate the assembly instructions for the fixture designby: receiving a maximum dimension for each of a plurality of pipedesigns and/or conduit designs; locating an intersection point betweenthe plurality of pipe designs and/or conduit designs; generating a jointdesign corresponding to the intersection point; modifying the pluralityof pipe designs and/or conduit designs to accept the joint design; whenone of the plurality of pipe designs and/or conduit designs has adimension greater than the maximum dimension, dividing the one of theplurality of pipe designs and/or conduit designs; and labeling theplurality of pipe designs and/or conduit designs.
 55. The system ofclaim 54, wherein the processor is further constructed and arranged togenerate the assembly instructions for the fixture design by: receivinga maximum length; determining a length of each of the plurality of pipedesigns and/or conduit designs; fitting the plurality of pipe designsand/or conduit designs into the maximum length; and generating aspecification including the fit of the plurality of pipe designs and/orconduit designs into the maximum length.
 56. The system of claim 57,wherein the processor is further constructed and arranged to send theassembly instructions for the fixture design to a tubing system.
 57. Thesystem of claim 31, wherein the processor is further constructed andarranged to: determine an intersection between the panel and anothersurface; and generate a joint design for the intersection.
 58. Thesystem of claim 57, wherein: when the intersection is between the paneland a second panel, the joint design is a push joint design and theprocessor is constructed and arranged to generate the push joint designby extracting a cylinder from the panel at a point on the intersectionand a corresponding cylinder from the second panel at a correspondingpoint on the intersection; and when the intersection is between thepanel and a floor or ceiling, the joint design is a slide joint designand the processor is constructed and arranged to generate the slidejoint design by generating a joint hardware element design andextracting a space for the joint hardware element design from the panel.59. The system of claim 31, wherein the processor is further constructedand arranged to: generate a visual model of a structure according to theframe design and the sheathing design; and cause the visual model to bedisplayed on a display.
 60. The system of claim 59, wherein theprocessor is further constructed and arranged to: receive a user commandassociated with the visual model; and perform an action in response tothe user command, the action comprising modifying the visual model,associating a rating with the visual model, requesting a paymentassociated with the visual model, and/or generating constructioninstructions associated with the visual model.